﻿/*  
  Autor:            Bella Ayala
  Fecha:            24/11/2011 16:25:23 PM
  ----------------------------------Historial----------------------------------
  Autor                    			Fecha                      			Descripcion

*/

using System;
using System.Web;

namespace Utpl.Syllabus.Reconocimiento.Web
{
    /// <summary>
    /// Clase que se utilizará para pasar parámnetros o inicializadores de reportes de manera general
    /// </summary>
    [Serializable]
    public class SessionReportesClass
    {
        public enum NombreVariable
        {
            PresentarBarraParametros,
            parametrosReporte
        }

        private string _nombreReporte;

        /// <summary>
        /// Constructor de session personalizado
        /// </summary>
        /// <param name="ventanaConsumo"></param>
        public SessionReportesClass(string nombreReporte)
        {
            this._nombreReporte = nombreReporte;
        }

        /// <summary>
        /// Private Ventana Consumo
        /// </summary>
        public string GetNombreReporteNombre
        {
            get { return _nombreReporte; }
        }

        public void setSession(NombreVariable enumsession, object value)
        {

            if (Enum.IsDefined(typeof(NombreVariable), enumsession))
            {
                HttpContext.Current.Session[this.GetNombreReporteNombre + enumsession.ToString()] = value;
            }
            else
            {
                throw new Exception();
            }
        }

        public object getSession(NombreVariable enumsession)
        {

            if (Enum.IsDefined(typeof(NombreVariable), enumsession))
            {
                return HttpContext.Current.Session[this.GetNombreReporteNombre + enumsession.ToString()];
            }
            else
            {
                throw new Exception();
            }

        }

        public void Reset()
        {
            foreach (NombreVariable enumsession in Enum.GetValues(typeof(NombreVariable)))
            {
                HttpContext.Current.Session.Remove(this.GetNombreReporteNombre + enumsession.ToString());
            }
        }

    }
}
